package com.dzm.demo.myshop.commons.persistence;

import java.util.List;
import java.util.Map;

/**
 *
 * 所有数据访问层的基类
 *@author:LeoDang
 *@date:2019/4/28
 *@version 1.0.0
 */
public interface BaseDao<T extends BaseEntity> {

    /**
     * 查询全部数据
     * @return
     */
    List<T> selectAll();

    /**
     * 插入
     * @param entity
     */
    void insert(T entity);

    /**
     * 删除
     * @param id
     */
    void delete(Long id);

    /**
     * 根据ID查询信息
     * @param id
     * @return
     */
    T getById(Long id);

    /**
     * 更新信息
     * @param entity
     */
    void update(T entity);

    /**
     * 批量删除
     * @param ids
     */
    void deleteMulti(String[] ids);

    /**
     * 分页查询
     * @param params 需要两个参数 start,length
     * @return
     */
    List<T> page(Map<String,Object> params);

    /**
     * 查询总数
     * @return
     */
    int count(T entity);
}
